<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
  // NaN: not a number

  // 1. isNaN ：is not a number
  // 可以使用 isNaN 这个方法来判断一个变量转成数字以后是不是一个合法的数字
  // 返回true或者false
  // 如果isNaN方法里面传入的不是一个数字，那么这个方法就会强制将这个变量转成数字

  // console.log(typeof NaN); // number

  // console.log(isNaN(10)); // false
  // console.log(isNaN("10")); // false
  // console.log(isNaN("abc")); // true
  // console.log(isNaN("10abc")); // true
  // console.log(+true); // 1
  // console.log(+false); // 0
  // console.log(+undefined);  // NaN
  // console.log(+null);  // 0
  // console.log(NaN === NaN); // false




  // 2. Number.isNaN()
  // es6新增Number.isNaN() 方法用于判断传递的值是否为 NaN
  // 并且检查其类型是否为 Number
  // 如果值为 NaN 且类型为 Number，则返回 true，否则返回 false
  // console.log(Number.isNaN(10)); // false
  // console.log(Number.isNaN("10")); // false
  // console.log(Number.isNaN("abc")); // false
  // console.log(Number.isNaN(NaN)); // true
  // console.log(Number.isNaN(+"abc")); // true



  // Number.isNaN方法是不会做强制类型转换的
  // Number.isNaN是一个更加准确的检测是否是NaN的方法

</script>